#!/usr/bin/wish
#
set str "a:b:c:d:ee"
set conc ""
set tableau(0) {aze}
set tableau(1) {poiuy}

proc deconcat { } {
	global str
	set chaine [split $str ":"]
	#transforme la chaine str en liste et le met dans chaine 
	global tableau
	#si le tableau existe deja, on le vide
	if { [array exists tableau]==1 } {
		unset tableau
	}
	set i 0
	puts $chaine
	#decomposition de la liste en un tableau pour faciliter les manipulation
	foreach mot $chaine {
		set tableau($i) $mot
		incr i
		puts $mot
	}
	#affichage du tableau pour test tailleT est sa taille
	set tailleT [array size tableau]
	for {set i 0} {$i<$tailleT} {incr i} {
		.t insert end "\n --> --> "
		.t insert end $tableau($i)
	}
}


proc concat { } {
	global conc
	#on vide ancienne valeur de conc
	set conc ""
	global tableau
	#taille du tableau et emplacement du dernier element (-1 si vide)
	set tailleT [array size tableau]
	set dernElem [expr $tailleT -1]

	#construction de la concatenation
	for {set i 0} {$i< $dernElem} {incr i} {
		append conc "$tableau($i):"
	}
	#ajout du dernier elemnt s'il existe (tableau non vide
	if {$dernElem >= 0} {
		append conc $tableau($dernElem)
	}
	.t insert end "$conc \n"
	#puts $socket $conc
}

text .t
button .b1 -text "Deconcat" -command deconcat
button .b2 -text "Concat" -command concat
entry .saisi -relief sunken -textvariable str

pack .b1 .b2 .t .saisi

